iT邦幫忙

2023 iThome 鐵人賽

DAY 27
0
Software Development

Womanium Global Quantum Project-Quantum Software&Hardware系列 第 27

Day27->Quantum repetition code for phase-flips

  • 分享至 

  • xImage
  •  

上一個筆記本中提供的程式碼只能修正 𝑋翻轉錯誤。現在,我們提供一個程式碼,能修正 𝑍翻轉錯誤。

Setup

Alice 想要傳送一個單量子位元狀態 |𝜓⟩ 給鮑勃,但透過通訊傳輸管道有機率p會發生Z翻轉錯誤 。如果發生錯誤,則狀態會扭曲為:
|https://chart.googleapis.com/chart?cht=tx&chl=%5Ctilde%5Cpsi⟩ = 𝑍| 𝜓⟩ = 𝑍( 𝛼| 0⟩+𝛽| 1⟩)=𝛼| 0⟩−𝛽|1⟩
Bob 無法判斷是否發生了錯誤,因此有機率 𝑝 他會收到錯誤的訊息。
因此,Alice和Bob使用糾錯程序。
https://ithelp.ithome.com.tw/upload/images/20231012/20137394JOxgzFD0pq.png

Encoding

為了防止此類錯誤,我們將使用重複程式碼,但基礎不同。現在,
|0⟩→|https://chart.googleapis.com/chart?cht=tx&chl=%5Cbar%7B0%7D⟩=|+++⟩,
|1⟩→|https://chart.googleapis.com/chart?cht=tx&chl=%5Cbar%7B1%7D⟩=|−−−⟩.

對於此程式碼基礎,狀態中的量子位 |𝜓⟩ 被編碼為
| 𝜓⟩ | 00 ⟩ = ( 𝛼| 0⟩+𝛽|1⟩)|00⟩→|https://chart.googleapis.com/chart?cht=tx&chl=%5Cbar%5Cpsi⟩ = 𝛼| +++⟩+𝛽|−−−⟩.
這是透過以下電路完成的。

import stac
enc_circ = stac.Circuit.simple(3)
enc_circ.append('CX', 0, 1)
enc_circ.append('CX', 0, 2)
for i in range(3):
    enc_circ.append('H', i)
enc_circ.draw()

https://ithelp.ithome.com.tw/upload/images/20231012/20137394is7n3EpCCZ.png

Decoding

錯誤檢測策略與之前相同。Bob使用了一個電路來比較兩對量子位元的值,但以正/負為基礎。這是使用以下電路來完成的。

synd_circ_expanded = stac.Circuit.simple(5)
synd_circ_expanded.append('H', 0)
synd_circ_expanded.append('CX', 0, 3)
synd_circ_expanded.append('H', 0)
synd_circ_expanded.append('TICK')

synd_circ_expanded.append('H', 1)
synd_circ_expanded.append('CX', 1, 3)
synd_circ_expanded.append('H', 1)
synd_circ_expanded.append('TICK')


synd_circ_expanded.append('H', 1)
synd_circ_expanded.append('CX', 1, 4)
synd_circ_expanded.append('H', 1)
synd_circ_expanded.append('TICK')


synd_circ_expanded.append('H', 2)
synd_circ_expanded.append('CX', 2, 4)
synd_circ_expanded.append('H', 2)

synd_circ_expanded.append('TICK')
synd_circ_expanded.append('M', 3)
synd_circ_expanded.append('M', 4)

synd_circ_expanded.draw()

https://ithelp.ithome.com.tw/upload/images/20231012/201373946QSNUJ9gSK.png

在每個區塊中,首先我們使用 Hadamard 閘切換到運算基礎,然後使用以下方法將量子位元的值傳輸到輔助量子位元: 𝐶𝑋 門。最後,我們使用Hadamard門轉換回正/負基。我們可以如下簡化該電路,並利用以下事實: https://chart.googleapis.com/chart?cht=tx&chl=H%5E2= 𝐼

synd_circ = stac.Circuit.simple(5)
for i in range(3):
    synd_circ.append('H', i)
synd_circ.append('TICK')
synd_circ.append('CX', 0, 3)
synd_circ.append('CX', 1, 3)
synd_circ.append('CX', 1, 4)
synd_circ.append('CX', 2, 4)
synd_circ.append('TICK')

for i in range(3):
    synd_circ.append('H', i)
synd_circ.append('TICK')

synd_circ.append('M', 3)
synd_circ.append('M', 4)
synd_circ.draw()

https://ithelp.ithome.com.tw/upload/images/20231012/20137394TQVtUS9jxn.png
為了確定syndrome,我們可以執行以下操作

circ = stac.Circuit.simple(5)
# encode the 0 state
#circ.append('X',0)
circ += enc_circ

# # add an error
circ.append('TICK')
circ.append('Z', 2)
circ.append('TICK')

# # do a syndrome measurement
circ += synd_circ

# draw to make sure you we understand what is happening
circ.draw()

# sample the output 10 times
circ.sample(10)

https://ithelp.ithome.com.tw/upload/images/20231012/20137394TdqIBXMQs3.png

因此可以推斷出以下表格

Syndrome Inferred error
00 I
01 https://chart.googleapis.com/chart?cht=tx&chl=Z_3
10 https://chart.googleapis.com/chart?cht=tx&chl=Z_1
11 https://chart.googleapis.com/chart?cht=tx&chl=Z_2

因此可以透過synfrome回推損壞的區域並修復

參考資料:https://github.com/abdullahkhalids/qecft


上一篇
Day26->Quantum repetition code for bit-flips
下一篇
Day28->The Shor Code
系列文
Womanium Global Quantum Project-Quantum Software&Hardware30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言